unit uClasseProdutoCaixa;

interface

uses
  uClasseBase;

type
  TProduto_Caixa = class(TConsultaBase)
  const
    Tabela      = 'Produto_Caixa';
    PrimaryKey  = 'nr_sequencia';
  private
    Fnr_seq_produto:  string;
    Fnr_seq_caixa:    integer;
    Fnr_sequencia:    integer;
    procedure Setnr_seq_caixa(const Value: integer);
    procedure Setnr_seq_produto(const Value: string);
    procedure Setnr_sequencia(const Value: integer);
  public
    constructor Create;
    class function GetTabela:string;override;
    class function GetPrimaryKey:string;override;
    function Existe(p_Nr_Seq_Produto:string;p_Nr_Seq_Caixa:integer):Boolean;reintroduce;
    //function Gravar:Boolean;
    function ExcluirPKInsert:Boolean;override;
  published
    property nr_sequencia:integer read Fnr_sequencia write Setnr_sequencia;
    property nr_seq_produto:string read Fnr_seq_produto write Setnr_seq_produto;
    property nr_seq_caixa:integer read Fnr_seq_caixa write Setnr_seq_caixa;
  end;

implementation

uses
  uUtils,
  uErro,
  SysUtils;

{ TProduto_Caixa }

constructor TProduto_Caixa.Create;
begin
  nr_seq_produto := '';
  FADOConn := TConexao.Interna;
  inherited;
end;

function TProduto_Caixa.ExcluirPKInsert: Boolean;
begin
  result := true;
end;

function TProduto_Caixa.Existe(p_Nr_Seq_Produto: string; p_Nr_Seq_Caixa: integer): Boolean;
begin
  result := False;
  try
    FQuery.Close;
    FQuery.SQL.Clear;
    FQuery.SQL.Add('select True from '+GetTabela+' where 1=1 ');
    FQuery.SQL.Add(' and nr_seq_produto = '+QuotedStr(p_Nr_Seq_Produto));
    FQuery.SQL.Add(' and nr_seq_caixa   = '+IntToStr(p_Nr_Seq_Caixa));
    FQuery.Open;
    result := FQuery.RecordCount > 0;
  except
    on E:Exception do
      TErro.GravarErro(Self.ClassName,'Existe',E,True,FQuery.SQL.Text);
  end;
end;

class function TProduto_Caixa.GetPrimaryKey: string;
begin
  result := PrimaryKey;
end;

class function TProduto_Caixa.GetTabela: string;
begin
  result := Tabela;
end;

//function TProduto_Caixa.Gravar: Boolean;
//begin
//  if Existe(nr_seq_produto,nr_seq_caixa) then
//    result := Update
//  else
//    result := Insert;
//end;

procedure TProduto_Caixa.Setnr_sequencia(const Value: integer);
begin
  Fnr_sequencia := Value;
end;

procedure TProduto_Caixa.Setnr_seq_caixa(const Value: integer);
begin
  Fnr_seq_caixa := Value;
end;

procedure TProduto_Caixa.Setnr_seq_produto(const Value: string);
begin
  Fnr_seq_produto := Value;
end;

end.
